Demodulation and phase estimation of two-dimensional patterns

ABSTRACT

A method ( 400 ) of estimating an orientation angle (β 0 ) of a pattern in an image ( 405 ) is described. A complex energy operator is applied to the image ( 405 ). The complex energy operator is defined as Ψ c {ƒ}=(D{ƒ}) 2 −ƒD 2 {ƒ}. A phase component of the result, which is defined as 2β 0 =arg(Ψ c {ƒ}) is determined, from which the orientation angle (β 0 ) is calculated. A method ( 100,200 ) of demodulating a real two-dimensional pattern is also described. A two-dimensional spiral phase filter is applied to the pattern. The result is combined with the original pattern to provide a demodulated image. Furthermore, a method ( 600 ) of estimating a spatial phase of fringe pattern images in a sequence of fringe patterns is disclosed. The fringe pattern images are converted to pure AMFM patterns by removing offsets from each. Contingent analytic images are determined corresponding to each of said AMFM patterns, from which phase differences and phase shifts are determined from dependent pairs. This allows for a spatial phase of the fringe pattern images to be estimated.

FIELD OF THE INVENTION

[0001] The present invention relates to two-dimensional code patterns and more particularly to the automatic demodulation of fringe patterns. The present invention also relates to the automatic estimation of pattern and texture orientation of an image. The present invention further relates to phase demodulation of a sequence of fringe patterns with arbitrary and unknown phase shifts between them. Such patterns typically occur in optical interferograms, but can also occur in interferograms produced by more general waves such as acoustic, synthetic aperture radar (SAR), ultrasound, and x-ray More general image sequences, such as video, can in some cases also be modelled as fringe pattern sequences.

BACKGROUND

[0002] Methods exist for demodulating fringe patterns. Examples of such patterns are illustrated in FIGS. 5 and 14A. However, conventional methods of demodulating closed curve fringe patterns, including circular and elliptical fringe patterns, inevitably produce ambiguities. Ambiguities are then typically resolved by including additional constraints. These additional constraints may include restrictions on the smoothness of curves within the fringe patterns.

[0003] In addition to ambiguities other defects and errors may also be produced by the preliminary demodulation process. An example of this can be found in the classic Fourier (Hilbert) transform method (FTM). When the FTM is applied to a whole image, artefacts are produced, the artefacts being related to discontinuities introduced by the half-plane filter used in Fourier space. The artefacts result in errors in phase estimation, and specifically in regions where an angle of the fringe pattern is close to perpendicular with the half-plane discontinuity line.

[0004] A method adopted to overcome this problem is to choose the half-plane filter in Fourier space such that the discontinuity line does not cut through the signal in Fourier space.

[0005] However, the frequency components derived from circular or elliptical fringe patterns are also “circular” and no discontinuity line could be defined which does not cut through the frequency signal.

[0006] Other methods based on local (small kernel) demodulation may avoid the errors of the FTM, but typically fail to disambiguate correctly when there are strong perturbations in the underlying fringe pattern. Features such as bifurcations and fringe endings represent typically strong perturbations.

[0007] Images are often characterised by a number of features including pattern and texture. A number of image processing operations depend upon the estimation of the orientation of these image features.

[0008] Image processing/analysis applications where the estimation of orientation is important include:

[0009] edge orientation detection;

[0010] orientation input to steerable filters;

[0011] pattern analysis;

[0012] texture analysis, where the local orientation of texture is estimated for characterisation purposes; and

[0013] orientation selective filtering, processing, and enhancement of images.

[0014] One such area where the estimation of orientation is particularly important is the demodulation of fringe patterns or equivalently, AM-FM modulated patterns. One area where such patterns exist is in fingerprint analysis. Other areas include the analysis of naturally formed patterns such as an iris diaphragm, ripples in sand, and fluid convection in thin layers. The primary reason why it is useful to know the fringe orientation when demodulating such a fringe pattern is because it allows for 1-dimensional demodulators to be aligned correctly.

[0015] Another area where the estimation of pattern orientation is used is in image re-sampling and enhancement.

[0016] Known methods for estimating pattern orientation include gradient-based methods. A serious deficiency with such gradient-based methods is that at the ridges and valleys of images, the gradient has zero magnitude. Gradient methods are therefore unable to provide information about pattern direction in such regions.

[0017] Interferometry refers to experiments involving the interference of two light waves that have suffered refraction, diffraction or reflection in the interferometer. Such experiments typically involve the testing of lenses, mirrors and other optical components. The principle parameter of interest in interferometry is the phase difference between interfering beams.

[0018] Present methods of demodulating sequences of phase-related fringe-patterns generally rely on a priori knowledge of the phase-shifts between each of the individual patterns. When these relative phase-shifts are available, it is possible to estimate the spatial phase by using a generalised phase-shifting algorithm (PSA). In cases where the relative phase-shifts are not a priori known, the estimated spatial phase will be incorrect unless special error-reducing PSAs are used or methods to estimate the actual phase-shift between patterns are used.

[0019] Error-reducing PSAs are useful where the deviation of the actual phase-shift from the expected phase-shift is small (typically less than 0.1 radian) and deterministic. When the phase-shift deviation is larger and/or non-deterministic (ie essentially random), then other methods must be used.

[0020] Methods have been developed to estimate phase shifts between phase-related fringe patterns. Certain of the methods, based on statistical (least squares) estimation, requires at least 5 fringe patterns to work. Methods based on fitting the phase shifts to an ellipse also require at least 5 fringe patterns. Methods based on the statistical properties of spatial phase histograms have been proposed, but are heavily dependent on certain restrictive, and often unrealistic criteria. More recently methods based upon the correlation between patterns have been proposed but are very sensitive to the number of full fringes in the frames. These correlation methods assume that the fringes are essentially linear in the frame, which means only trivial fringe patterns can be processed. Methods based on the maximum and minimum variation of individual pixels in different patterns typically require at least 15 frames to operate effectively.

[0021] Accordingly, current methods of demodulating sequences of phase-related fringe-patterns are unsatisfactory in many situations, especially for a small number of phase-related fringe-patterns, and many algorithms do not work in the case of three or four frames.

DISCLOSURE OF THE INVENTION

[0022] It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.

[0023] According to a first aspect of the invention, there is provided a method of demodulating a real two-dimensional pattern, the method comprising the steps of:

[0024] estimating a quadrature two-dimensional pattern from said real two-dimensional pattern using a two-dimensional spiral phase filter; and

[0025] creating a demodulated image by combining said real two-dimensional pattern and said estimated quadrature two-dimensional pattern.

[0026] According to another aspect of the invention, there is provided an apparatus for demodulating a real two-dimensional pattern, the apparatus comprising:

[0027] means for estimating a quadrature two-dimensional pattern from said real two-dimensional pattern using a two-dimensional spiral phase filter; and

[0028] means for creating a demodulated image by combining said real two-dimensional pattern and said estimated quadrature two-dimensional pattern.

[0029] According to another aspect of the invention there is provided an apparatus for calculating a quadrature conjugate of a real two-dimensional code pattern, the apparatus comprising:

[0030] a first spatial light modulator for modulating coherent light to produce said real two-dimensional pattern;

[0031] a first lens for Fourier transformation of said real two-dimensional pattern to produce a first Fourier transformed image;

[0032] a second spatial light modulator or spiral phase plate for phase modulating said first Fourier transformed image to produce a phase modulated image;

[0033] a second lens for Fourier transformation of said phase modulated image to produce a second Fourier transformed image;

[0034] a third spatial light modulator or spiral phase plate for phase modulating said second Fourier transformed image to produce said conjugate of said real two-dimensional pattern; and

[0035] an image sensor for capturing said conjugate of said real two-dimensional pattern.

[0036] According to yet another aspect of the invention there is provided a method of estimating an orientation angle of a pattern in an image, said method comprising the steps of:

[0037] applying a complex energy operator to the image to provide an energy encoded image;

[0038] determining a phase component of said energy encoded image; and

[0039] calculating said orientation angle from said phase component of said energy encoded image.

[0040] According to yet another aspect of the invention there is provided an apparatus for estimating an orientation angle of a pattern in an image, said apparatus comprises.

[0041] means for applying a complex energy operator to the image to provide an energy encoded image;

[0042] means for determining a phase component of said energy encoded image; and

[0043] means for calculating said orientation angle from said phase component of said energy encoded image.

[0044] According to yet another aspect of the invention there is provided a method of estimating a spatial phase of fringe pattern images in a sequence of fringe patterns, said method comprising the steps of:

[0045] a) removing offsets from each of said fringe pattern images to obtain pure AMFM patterns;

[0046] b) determining contingent analytic images corresponding to each of said AMFM patterns;

[0047] c) determining phase differences from dependent pairs of said contingent analytic images;

[0048] d) estimating phase shifts between pairs of said contingent analytic images; and

[0049] e) estimating a spatial phase of said fringe pattern images.

[0050] According to yet another aspect of the invention there is provided an apparatus for estimating relative phase shifts between fringe pattern images in a sequence of phase-related fringe patterns, said apparatus comprising:

[0051] means for removing offsets from each of said fringe pattern images to obtain pure AMFM patterns;

[0052] means for determining contingent analytic images corresponding to each of said AMFM patterns;

[0053] means for determining phase differences from dependent pairs of said contingent analytic images; and

[0054] means for estimating phase shifts between pairs of said contingent analytic images, wherein said phase shifts between pairs of said contingent analytic images are said relative phase shifts between fringe pattern images.

BRIEF DESCRIPTION OF THE DRAWINGS

[0055] A number of embodiments of the present invention will now be described with reference to the drawings and appendix, in which:

[0056]FIG. 1 is an illustration of the local structure of a fringe pattern;

[0057]FIG. 2 is an illustration of the Fourier transform of the local fringe pattern of FIG. 1;

[0058]FIG. 3 is a flow diagram of a method of phase demodulation;

[0059]FIG. 4 is a flow diagram of an alternative method of phase demodulation;

[0060]FIG. 5 is an example of a fringe pattern image;

[0061]FIGS. 6 and 7 are the real and imaginary parts of an intermediate result in applying the method of FIG. 4 to the image of FIG. 5;

[0062]FIG. 8 is an alternative estimate of fringe orientation of the fringe pattern image of FIG. 5;

[0063]FIGS. 9A and 9B are the magnitude and phase components of a demodulated fringe pattern when the estimate of fringe orientation of the fringe pattern image as shown in FIG. 8 is used;

[0064]FIG. 10 is a schematic block diagram of an optical spiral phase demodulator;

[0065]FIGS. 11A and 11B are the magnitude and phase components respectively of an intermediate result in applying an energy operator to the image of FIG. 5;

[0066]FIGS. 11C and 11D are the magnitude and phase components respectively of another intermediate result in applying the energy operator to the image of FIG. 5;

[0067]FIGS. 11E and 11F are the magnitude and phase components respectively of applying the energy operator to the image of FIG. 5;

[0068]FIG. 12A is an example of a fringe pattern image containing noise;

[0069]FIGS. 12B and 12C are the magnitude and phase components respectively of applying the energy operator to the image of FIG. 12A;

[0070]FIGS. 12D and 12E are the magnitude and phase components respectively of applying a modified energy operator to the image of FIG. 12A;

[0071]FIG. 13A is another example of a fringe pattern image containing noise;

[0072]FIGS. 13B and 13C are the magnitude and phase components respectively of applying the energy operator to the image of FIG. 13A;

[0073]FIGS. 13D and 13E are the magnitude and phase components respectively of applying the modified energy operator to the image of FIG. 13A;

[0074]FIG. 14A is an example of a fringe pattern image with amplitude and frequency modulation;

[0075]FIGS. 14B and 14C are the magnitude and phase components respectively of applying the energy operator to the image of FIG. 14A;

[0076]FIGS. 14D and 14E are the magnitude and phase components respectively of applying the modified energy operator to the image of FIG. 14A;

[0077]FIG. 15A is an example of a texture image;

[0078]FIGS. 15B and 15C are the magnitude and phase components respectively of applying the energy operator to the image of FIG. 15A;

[0079]FIGS. 15D and 15E are the magnitude and phase components respectively of applying the modified energy operator to the image of FIG. 15A;

[0080]FIG. 16 is a flow diagram of a method of estimating the pattern and texture orientation of images;

[0081]FIG. 17 shows the Fourier domain coordinates;

[0082]FIGS. 18A and 18B show the phase shift parameters δ_(n) for the case where N=5 on a polar plane;

[0083]FIG. 19 shows a flowchart of an automatic calibration method;

[0084]FIG. 20 shows yet another an example of a fringe pattern;

[0085]FIGS. 21A and 21B show the magnitude and phase components respectively of an analytic image of the example fringe pattern shown in FIG. 20;

[0086]FIG. 22A shows a phase difference between dependent analytic images;

[0087]FIG. 22B shows a histogram of a spread in values of the phase difference shown in FIG. 22A;

[0088]FIG. 23A shows a modulus of the phase difference between dependent analytic images shown in FIG. 22A;

[0089]FIG. 23B shows a histogram of a spread in values of the modulus of the phase difference shown in FIG. 23B;

[0090]FIG. 24 shows a polarity function calculated from the phase difference shown in FIG. 22A and the modulus of the phase difference shown in FIG. 23A;

[0091]FIGS. 25A and 25B show estimations of an amplitude modulation and a phase of the fringe pattern shown in FIG. 20;

[0092]FIG. 26 shows an estimate of an offset of the fringe pattern shown in FIG. 20;

[0093]FIG. 27 shows a simple weight function calculated from the estimated errors in the analytic image shown in FIGS. 21A and 21B; and

[0094]FIG. 28 shows a schematic block diagram of a general purpose computer upon which arrangements described can be practiced.

DETAILED DESCRIPTION INCLUDING BEST MODE

[0095] Consider a two-dimensional fringe pattern with intensity of the fringe pattern as follows

ƒ(x,y)=a(x,y)+b(x,y).cos[2π(u ₀ {x−x ₀ }+v ₀ {y−y ₀})−χ]  (1)

[0096] Position coordinates (x,y) may be continuous for an analog pattern or discrete for digital patterns. A background level is denoted by a(x,y) while an amplitude modulation term is denoted by b(x,y), both assumed to be slowly varying functions. Phase term χ(x₀, y₀) presents the local offset of the overall phase term in the square brackets [ ] of Equation (1).

[0097] Referring to FIG. 1 where a 2-dimensional fringe pattern or AM-FM pattern, located around a point (x₀,y₀) and formed by a number of fringes 10 is shown. A small region of interest is defined by Ω. Within this small region Ω, the spatial frequency components u₀ and v₀ are slowly varying so that they are effectively constant around the point (x₀,y₀), making the carrier a linear function of x and y. A normal 12 to the local fringes 10 is at an angle β₀ to the x-axis.

[0098] A noise term is omitted from Equation (1), but may be present in real fringe patterns due to the occurrence of blurring, non-linearities, quantisation errors, smudging, scratches, cuts, dust, etc.

[0099] The intensity pattern ƒ(x,y) is (generally) a rapidly varying function of position coordinates (x,y).

[0100] The Fourier transform (FT) of the above fringe pattern region Ω is:

F _(Ω)(u,v)=∫∫ƒ(x,y)exp[−2πi(ux+vy)]dxdy=A _(Ω)(u,v)+(B _(Ω)(u−u ₀ ,v−v ₀)exp[iχ]+B ₁₀₆ (u+u ₀ ,v+v ₀)exp[−lχ])e ^(−2π(uX) ^(_(c)) ^(+vy) ^(₀) ⁾   (2)

[0101] wherein l={square root}{square root over (−1)}

[0102] From Equation (2) it is clear that the Fourier transform F_(Ω) of the fringe pattern ƒ has 3 lobe centres, the first being at the origin and another two at spectral coordinates (u₀,v₀) and (−u₀,−v₀). The last two lobe centres are mirror images of each other with regards to the origin. The effect of windowing the fringe pattern ƒ over a small region Ω is to blur the otherwise sharp lobes. The central lobe A_(Ω), representing the zero frequency component, can be removed, and will therefore be disregarded in the following analysis. Methods that may be used for removal of the zero frequency components include using a suitably matched high pass filter. The remaining spectral lobes are illustrated in FIG. 2.

[0103] The local spatial frequency components u₀ and v₀ of the fringe pattern ƒ satisfies the following Equations: $\begin{matrix} \left. \begin{matrix} {{u_{0}^{2} + v_{0}^{2}} = \sigma_{0}^{2}} \\ {\sigma_{0} = \frac{2\pi}{\lambda_{0}}} \\ {{\tan \quad \left( \beta_{0} \right)} = \frac{v_{0}}{u_{0}}} \end{matrix} \right\} & (3) \end{matrix}$

[0104] wherein β₀ is an angle of the normal to the fringes with the x-axis and λ₀ is the spacing between fringes.

[0105] The conventional Fourier transform method (FTM) of fringe analysis is based on the assumption that the angle β₀ is confined to a small range for the entire fringe pattern, typically much less than π radians. However, when considering fringe patterns with circular, elliptical carrier patterns or other closed curves, the angle β₀ covers the entire angle range from 0 to 2π radians. The FTM would therefore be deficient in solving fringe patterns created with closed curve carriers. The reason for this failure is related to the inability of the FTM to isolate the two (mirrored) lobes of the FT. As noted above, the frequency components derived from closed curve fringe patterns are also “closed curves”. Therefore, referring again to Equation (2), both the second and third terms will have “closed curve” spectral components, causing a total lobe overlap.

[0106] The preferred implementation removes directional discontinuities in the Fourier processing of the fringe pattern ƒ by smoothly encoding the fringe direction by utilizing a filter with odd (180° rotational) symmetry, but (unlike the FTM) a smooth transition between adjacent frequencies. Also, the filter used in the preferred implementation does not alter the strength of different frequency components, and is therefore a unit magnitude or phase only filter.

[0107] A (complex) Fourier representation P(u,v) of the filter preferably has the following anti-symmetry qualities:

P(u,v)=exp[iX(u,v)]=P(−u,−v)=−exp[i(X(u,v)+π)]  (4)

[0108] A preferred filter chosen has a phase X(u,v) which is set equal to the polar angle

X(u,v)=φ  (5)

[0109] where $\begin{matrix} \left. \begin{matrix} {u = {q\quad \cos \quad (\varphi)}} \\ {v = {q\quad \sin \quad (\varphi)}} \\ {{u^{2} + v^{2}} = q^{2}} \end{matrix} \right\} & (6) \end{matrix}$

[0110] The resulting filter is termed a “spiral phase filter” because the filter phase X increases linearly as the polar angle φ increases. The magnitude of the filter is constant (so the filter is a pure phase filter) and the phase has the form of a spiral or helical surface with just one turn. An equivalent form of the filter is simply: $\begin{matrix} {{P\left( {u,v} \right)} = {\frac{\left( {u + {iv}} \right)}{q} = ^{i\quad \varphi}}} & (7) \end{matrix}$

[0111] The Fourier transform of the fringe pattern after the central lobe has been removed is as follows:

G _(Ω)(u,v)=(B _(Ω)(u−u ₀ ,v−v ₀)exp[iχ]+B _(Ω)(u+u ₀ ,v+v ₀)exp[−iχ])e ^(−2π(ux) ^(₀) ^(+vy) ^(₀) ⁾   (8)

[0112] Applying the spiral phase filter P(u,v) to Equation (8) changes the lobe symmetry to give:

Ĝ(u,v)=P(u,v).F′ _(Ω)(u,v)=(B _(Ω)(u−u ₀ ,v−v ₀)exp[lχ]exp[iφ]−B _(Ω)(u+u ₀ ,v+v ₀)exp[−iχ]exp[iφ])e ^(−2πi(ux) ^(₀) ^(+vy) ^(₀) ⁾   (9)

[0113] Equation (9) can be inverse transformed, as is shown in Equation (10), by implicitly assuming that the polar angle φ(u,v)≈±β₀ remains constant over each lobe. This is equivalent to assuming that the lobe subtends a small polar angle φ, which is a reasonable assumption for typical fringe patterns ƒ. $\begin{matrix} \begin{matrix} {{\hat{g}\left( {x,y} \right)} = {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{\hat{G}\left( {u,v} \right)}\quad {\exp \quad\left\lbrack {2\quad \pi \quad i\quad \left( {{ux} + {vy}} \right)} \right\rbrack}\quad {u}{v}}}}} \\ {= {i\quad {\exp \quad\left\lbrack {i\quad \beta_{0}} \right\rbrack}{\sin \left\lbrack {{2\pi \quad \left( {{u_{0}\left\{ {x - x_{0}} \right\}} + {v_{0}\left\{ {y - y_{0}} \right\}}} \right)} + \chi} \right\rbrack}}} \end{matrix} & (10) \end{matrix}$

[0114] The desired sine component of the local fringe pattern ĝ(x,y) can then be extracted by multiplying ĝ(x,y) with an orientational phase component, exp[−iβ₀] as follows

ĝ(x,y).exp[−iβ ₀ ]=i sin[2π(u ₀ {x−x ₀ }+v ₀ {y−y ₀})+χ]  ( 11)

[0115] Conceptually the process is repeated for all fringe regions with their corresponding fringe orientation angles β. In practice the procedure can be applied to all regions simultaneously. It is noted that the original (conceptual) windowing is not actually required.

[0116] The aforementioned process depends upon the functions b(x,y), β(x,y), χ(x,y), u₀(x,y), v₀(x,y), and σ₀(x,y) having suitably slow variation. However, it is found in practice that the preferred implementation can be successfully implemented on any fringe patterns ƒ with a suitably smooth variation in orientation β(x,y) and spacing λ₀. For fringe patterns ƒ with circular fringes and constant or quadratic (chirp) fringe spacing λ₀, the preferred implementation only breaks down near the very center of the fringe pattern ƒ due to the assumption of small polar angle subtense failing near the centre.

[0117] Equation (11) represents an estimation of the imaginary part of the analytic function (or image) related to the original real fringe pattern ƒ. This component is also called the quadrature component or analytic conjugate. By forming a new (complex) output image comprising the original real image ƒ and the estimated imaginary image, the phase and magnitude of the resulting complex fringe representation can be obtained as follows:

(ƒ−a)+(ĝ(x,y)exp{−iβ ₀})≈b.exp{i[2πi(u ₀ {x−x ₀ }+v ₀ {y−y ₀})+χ]}  (12)

[0118]FIG. 3 is a flow diagram of a phase demodulation process 100. The fringe pattern image ƒ(x,y), captured in step 110, typically includes only a real part. The fringe pattern image ƒ(x,y) is transformed in step 120 by applying a 2-dimensional FFT. Because the fringe pattern image ƒ(x,y) is real, the real and imaginary parts of the transform F(u,v) are symmetric and antisymmetric respectively.

[0119] The DC component (lobe) of the transform F(u,v) is removed in step 130. In step 40, the spiral phase filter P(u,v) is applied to the output from step 130. In step 150, the inverse Fourier transform is calculated. This may be performed by again applying a 2-dimensional FFT.

[0120] In step 160, an orientational phase filter is applied to the resulting image of step 150. In step 170 the real part is discarded, leaving only the imaginary part, which is then added to the input fringe pattern image ƒ(x,y) in step 180 to produce an output image in step 190.

[0121]FIG. 4 is a flow diagram of an alternative implementation of a phase demodulation process 200, and will be explained with reference to an example fringe pattern. An example of such a two-dimensional fringe pattern is illustrated in FIG. 5, wherein only the real part of the pattern is known.

[0122] The fringe pattern image ƒ(x,y) is captured in step 210. In the phase demodulation process 200, steps 120 to 150 of the phase demodulation process 100 shown in FIG. 3 are replaced by a single convolution step 220. The fringe pattern image ƒ(x,y) is preferably convolved with spiral phase function p(x,y), wherein p(x,y) is defined as follows: $\begin{matrix} \begin{matrix} {{p\left( {x,y} \right)} = {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{P\left( {u,v} \right)}\quad {\exp \quad\left\lbrack {2\quad \pi \quad i\quad \left( {{ux} + {vy}} \right)} \right\rbrack}\quad {u}{v}}}}} \\ {= {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\frac{\left( {u + {iv}} \right)}{\sqrt{u^{2} + v^{2}}}{\exp \quad\left\lbrack {2\pi \quad {i\left( {{ux} + {vy}} \right)}} \right\rbrack}{u}{v}}}}} \end{matrix} & (13) \end{matrix}$

[0123] wherein $\begin{matrix} \left. \begin{matrix} {x = {r\quad \cos \quad \theta}} \\ {y = {r\quad \sin \quad \theta}} \end{matrix} \right\} & (15) \end{matrix}$

[0124] The result after such a convolution on the fringe pattern image ƒ(x,y) of FIG. 5 is illustrated in FIGS. 6 and 7, showing the real and imaginary parts of ƒ(x,y)*p(x,y).

[0125] Referring again to FIG. 4, in step 230 the orientational phase filter, exp[−iβ] is applied. However, an estimation of the fringe orientation β is needed.

[0126] One method of estimating the fringe orientation β is to compute the 2-D energy operator which gives uniform estimates over the fringe pattern image ƒ(x,y). In contrast, typical gradient based methods fail to give reliable orientation estimates at the peaks and valleys of the fringes.

[0127] An alternative method of estimating the fringe orientation β is to use an uniform orientation estimator, but to utilise local environmental constraints (such as topology of smoothly varying fringes) to resolve or unravel the orientational ambiguity. FIG. 8 illustrates a smooth estimate of the fringe orientation exp(iβ) derived from exp(2iβ). The orientation phase estimate exp(iβ) has only one discontinuity line at positions where the phase changes from 360° to 0°. A number of different methods are suitable for resolving the orientational ambiguity. The magnitude and phase components of the result of step 230 using the estimation of the fringe orientation β of FIG. 8 is illustrated in FIGS. 9A and 9B.

[0128] It is noted that an estimate of the orientation can be obtained from the output of step 150 in FIG. 3 or alternatively from the output of step 220 in FIG. 4. However, additional unravelling will be required to obtain a useable orientation estimate.

[0129] A preferred implementation of estimating the fringe orientation β is described in detail below.

[0130] In step 240 the real part is discarded, leaving only the imaginary part, which is then added to the input fringe pattern image ƒ(x,y), in step 250 to produce an output image in step 260.

[0131] The method of FIG. 3 can be practiced using an optical spiral phase demodulator 300, such as that shown in FIG. 10. The optical spiral phase demodulator 300 is illuminated by coherent light 301. A first spatial light modulator (SLM) 302 modulates the coherent light 301 to produce the input image, which is typically a fringe pattern ƒ(x,y). The fringe pattern ƒ(x,y) is Fourier transformed by lens 303. A second SLM 304 or a spiral phase plate performs phase modulation in the image projected on it. The phase modulated image is then Fourier transformed by lens 305 and is projected onto a final SLM 306 or spiral phase plate. The final spiral phase plate 306 retards the coherent optical beam in a manner such that the plate introduces a spiral phase multiplication. An image sensor 307 is in close proximity to the final SLM 306 to detect an output image. The output image will be in quadrature (or analytic conjugate) to the input image. In other words, if a cosine pattern is input, a sine pattern is output.

[0132] In the special case where the input image is a circularly symmetric fringe pattern, then the SLM 306 has the simple form of a spiral phase with opposite sign to SLM 304.

[0133] Returning to the description of the estimation of the fringe orientation β, it is noted that in recent years, an efficient method of signal demodulation using a concept known as an “energy operator” has become popular. The operator can be used for demodulation of AM and FM signals, including combined AM-FM signals, using a result from the analysis of simple harmonic motion (SHM). The energy operator Ψ is defined as: $\begin{matrix} {{\Psi \left\{ {g(x)} \right\}} = {\left( \frac{\partial g}{\partial x} \right)^{2} - {g\frac{\partial^{2}g}{\partial x^{2}}}}} & (16) \end{matrix}$

[0134] A particularly useful property of the energy operator Ψ is that it gives uniform estimates of modulation parameters anywhere on the signal ƒ. Essentially this is due to the fact that, at local peaks (and troughs) of the signal ƒ, the energy is concentrated in the potential energy component, represented by the second term in Equation (16), whereas at the zero crossings, the energy is in the kinetic component represented by the first term in Equation (16). In other words, the rapidly varying sine and cosine components associated with AM-FM signals are exactly cancelled out by the energy operator Ψ, leaving an underlying constant representing total energy.

[0135] The operation of the energy operator Ψ has also been extended to N-dimensions. This is described in the publication “A multi-dimensional energy operator for image processing”, SPIE Conference on Visual Communications and Image Processing, Boston, Mass., [1992], 177-186, by P. Maragos, A. C. Bovik, and J. F. Quartieri.

[0136] Utilising the energy operator Ψ on images, (i.e. data sets formed in 2-dimensions,) separate x and y components may be calculated and added together to obtain an overall 2-dimensional energy operator.

[0137] However, the energy operator Ψ defined in this simple way has certain deficiencies. The main deficiency being that the orientation associated with the energy components is strictly limited to the positive quadrant of the x-y plane, which means that visually very different orientations are indistinguishable using two positive energy components.

[0138] Referring again to FIG. 1 and Equation (1), the intensity of the fringe pattern can be represented as follows:

g(x,y)=b(x,y).cos [2π(u ₀ {x−x ₀ }+v ₀ {y−y ₀})+χ]  (17)

[0139] wherein any slowly varying (non-multiplicative) background offsets a(x,y) are removed with an appropriate high-pass filter. The local spatial frequency components u₀ and v₀ satisfy Equations (3).

[0140] The x and y component energy operators Ψ_(x) and Ψ_(y) respectively may be performed on the fringe pattern defined in Equation (17) as follows: $\begin{matrix} {{\Psi_{x}\left\{ {g(x)} \right\}} = {{\left( \frac{\partial g}{\partial x} \right)^{2} - {g\frac{\partial^{2}g}{\partial x^{2}}}} \approx \left( {2\pi \quad u_{0}b} \right)^{2}}} & (18) \end{matrix}$

$\begin{matrix} {{\Psi_{y}\left\{ {g(x)} \right\}} = {{\left( \frac{\partial g}{\partial y} \right)^{2} - {g\frac{\partial^{2}g}{\partial y^{2}}}} \approx \left( {2\pi \quad v_{0}b} \right)^{2}}} & (19) \end{matrix}$

[0141] Substituting Equations (18) and (19) into Equations (3), the local frequency and orientation of the local fringe pattern may alternatively be expressed as follows: $\begin{matrix} {\sigma_{0}^{2} = \frac{{\Psi_{x}\left\{ g \right\}} + {\Psi_{y}\left\{ g \right\}}}{\left( {2\quad \pi \quad b} \right)^{2}}} & (20) \end{matrix}$

$\begin{matrix} {{\tan \quad \left( \beta_{0} \right)} = {\pm \sqrt{\frac{\Psi_{y}\left\{ g \right\}}{\Psi_{x}\left\{ g \right\}}}}} & (21) \end{matrix}$

[0142] Equation (21) indicates a loss in sign information, which corresponds to an inability to distinguish between fringes at four different orientations β₀, −β₀,π+β₀, π−β₀. This is very undesirable because the human eye can clearly separate orientation β₀ from π−β₀, and −β₀ from π+β₀. In general, however, it is not possible to distinguish (on a local level at least) between any orientation and the π rotated orientation.

[0143] An alternative approach to extending the energy operator Ψ to two dimensions is by defining a two dimensional complex operator Ψ_(c) which encodes the energy in the magnitude and the orientation in the phase:

Ψ_(x) {g}+Ψ _(y) {g}=(2πb)²(u ₀ ² +iv ₀ ²)   (22)

[0144] As mentioned above, the simple x and y components alone fail to represent the orientation correctly. A preferable approach would be to have a 2D energy operator that has the following output:

Ψ_(c) {g(x)}=(2πb)²(u ₀ +iv ₀)²=(2πσ₀ b)² exp(2iβ ₀)   (23)

[0145] The complex energy operator Ψ_(c) enables the isolation of the fringe spacing λ₀, as seen in FIG. 1, and orientation angle β₀ respectively. It is noted that the term 2 in the exponential factor of Equation (23) again causes the orientation angle β₀ to be defined modulo π. Such an energy operator is developed by defining a 2-dimensional complex differential operator D as follows: $\begin{matrix} {{D\left\{ g \right\}} = {\frac{\partial g}{\partial x} + {i\frac{\partial g}{\partial y}}}} & (24) \end{matrix}$

[0146] The complex energy operator Ψ_(c) can then be defined as follows:

(D{g})² −gD ² {g}=(2πσ₀ b)²exp(2iβ ₀)=Ψ_(c) {g}  (25)

[0147] With the Fourier transform defined as follows: $\begin{matrix} {{G\left( {u,v} \right)} = {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{g\left( {x,y} \right)}{\exp \quad\left\lbrack {{- 2}\quad \pi \quad {i\left( {{ux} + {vy}} \right)}} \right\rbrack}{x}{y}}}}} & (26) \end{matrix}$

[0148] the operator D can be implemented in the Fourier space, providing the following relationship: $\begin{matrix} {{\left( {2\pi \quad i} \right)\left( {u + {iv}} \right)\quad {G\left( {u,v} \right)}} = {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{D\left\{ {g\left( {x,y} \right)} \right\} {\exp \quad\left\lbrack {{- 2}\pi \quad {i\left( {{ux} + {vy}} \right)}} \right\rbrack}{x}{y}}}}} & (27) \end{matrix}$

[0149] wherein

2π(u+iv)≡2πq.exp(iφ)   (28)

[0150] and the polar coordinate transforms are: $\begin{matrix} \left. \begin{matrix} {u = {q\quad \cos \quad (\phi)}} \\ {v = {q\quad \sin \quad (\phi)}} \\ {{u^{2} + v^{2}} = q^{2}} \end{matrix} \right\} & (29) \end{matrix}$

[0151] The corresponding Fourier operation of Equation (27) provides for the multiplication of the Fourier transform of the fringe pattern G(u,v) with a spiral phase filter, q exp(iφ) The spiral phase filter has the characteristic of linearly (conical) increasing in magnitude with frequency. The Fourier transformation pairs may be written as:

G(u,v)

g(x,y)   (30)

(2πi)q exp(iφ)G(u,v)

D{g(x,y)}  (31)

(2πi)² q² exp(2iφ)G(u,v)

D² {g(x,y)}  (32)

[0152] The derivatives in Equation (25) can therefore be implemented as 2-dimensional Fourier filters with spiral phase and conical magnitude.

[0153] By applying the differential operators defined in Equations (30) to (32) as filters through simple multiplication of the image of FIG. 5, the results as shown in FIGS. 11A to 11F is obtained. FIGS. 11A and 11B show the magnitude and phase components respectively of the (D {g})² term of Equation (25), calculated by using the relationship in Equation (31). Similarly, FIGS. 11C and 11D show the magnitude and phase components respectively of the gD²{g} term of Equation (25), calculated by using the relationship in Equation (32). The magnitude and phase components respectively of the complex energy operator Ψ_(c) is shown in FIGS. 11E and 11F. Referring to Equation (23), the phase component of the complex energy operator Ψ_(c) has double the orientation angle β₀ of the fringe pattern ƒ.

[0154] All the above calculations and derivations may alternatively be implemented as convolution operators without Fourier transformation.

[0155] However, when the energy operator Ψ_(c) is applied to a fringe pattern ƒ containing noise, such as that shown in FIG. 12A, the resulting magnitude and phase components of the complex energy operator Ψ_(c), shown in FIGS. 12B and 12C, are less satisfactory. The primary reason for the degradation is the linear (conical) spectral enhancement of the differential operator D. The differential operator D effectively enhances high frequency noise, as it essentially operates as a high-pass filter. In particular, in the areas of low spatial frequency σ₀, such as the area 20 on FIG. 12A, the contribution by the noise signal due to the differentiation dominates the determination of the orientation of the fringe pattern. Referring to FIG. 12C, the phase component, from which the orientation can be obtained by using the relationship from Equation (23), provides near random noise in the corresponding area 22.

[0156] One possible correction is to apply a low pass filter function to the input image or the result. However, the energy operator Ψ is not a linear (shift invariant) operator It is dependent on products of the input function g and its derivatives ∂g/∂x and ∂²g/∂x², as can be seen from Equation (16). Low pass filtering results in the image becoming blurred.

[0157] To overcome the deficiencies of the complex energy operator Ψ_(c), while maintaining the ease of calculation of the orientation angle β₀, a pure phase operator D_(M), thus having uniform (spectral) magnitude, is created by setting q in Equations (31) and (35) to unity, to define the following Fourier transform pair:

exp(lφ)G

D_(M){g(x,y)}  (33)

[0158] The pure phase operator D_(M) is a spiral phase (or vortex) operator which results in the removal of noise without significant blurring of the signal. By applying the modified energy operator Ψ_(M) defined as:

Ψ_(M) {g}=(D _(M) {g})² −gD _(M) ² {g}  (34)

[0159] to the image in FIG. 12A, the magnitude and phase components respectively of the modified energy operator Ψ_(M) shown in FIGS. 12D and 12E, are obtained. The comparison of the phase components of the complex energy operator Ψ_(c) shown in FIG. 12C and modified energy operator Ψ_(M) shown in FIG. 12E, and in particular to the corresponding areas 22 and 24 respectively, indicate that the modified energy operator Ψ_(M) provides a better result.

[0160] It is noted that, similar to the energy operator Ψ, the modified energy operator Ψ_(M) is also non-linear. A consequence of this is that it is generally not possible to obtain the performance of the modified energy operator Ψ_(M) by merely applying a low pass filter to the input function, nor by filtering the output function, of the energy operator Ψ.

[0161] The modified energy operator Ψ_(M) has a property of scale invariance, which it inherits from the scale invariant D_(M) operator. Scale invariance is another aspect of the operator's spectral neutrality and means that the operator essentially gives outputs independent of feature size.

[0162] To further illustrate the advantages of the modified energy operator Ψ_(M), the complex energy operator Ψ_(c) and the modified energy operator Ψ_(M) are respectively applied to an image with uniform noise in the range ±64 greylevels shown in FIG. 13A. The magnitude and phase components respectively of the complex energy operator Ψ_(c) are shown in FIGS. 13B and 13C, while the magnitude and phase components respectively of the modified energy operator Ψ_(M) are shown in FIGS. 13D and 13E. Because of the high level of noise in the input image, the phase component of the complex energy operator Ψ_(c) is completely weighed down by the contribution of the noise. The modified energy operator Ψ_(M) gives a much clearer phase without any obvious blurring that would be expected of noise reduction by conventional low pass filtering of the complex energy operator Ψ_(c).

[0163] Another comparative example wherein the performance of the modified energy operator Ψ_(M) can be seen is shown in FIGS. 14A to 14E. FIG. 14A shows an amplitude and frequency modulated image. The magnitude and phase components respectively of the complex energy operator Ψ_(c) are shown in FIGS. 14B and 14C, while the magnitude and phase components respectively of the modified energy operator Ψ_(M) are shown in FIGS. 14D and 14E, The complex energy operator Ψ_(c) again has difficulty in regions of low spatial frequency λ₀, such as area 30, causing the corresponding area 32 in FIG. 14C to have high levels of uncertainty. On the other hand, the corresponding area 34 when the modified energy operator Ψ_(M) is applied, provides a much clearer result.

[0164] It is further noted that since the underlying fringe pattern of the images in FIGS. 12A, 13A and 14A are the same with different processes applied thereto, the processes not affecting the orientation of the fringes of the underlying pattern, the results of the modified energy operator Ψ_(M) shown in FIGS. 12E, 13E and 14B are substantially similar.

[0165] The modified energy operator Ψ_(M) may be implemented entirely in the Fourier space domain by using complex convolution kernels that correspond to the pure phase spirals. With the kernel k and its Fourier transform K, the Fourier transform pair can be defined as: $\begin{matrix} {{K\left( {u,v} \right)} = {{\exp \quad \left( {i\quad \phi} \right)} = {\left. \frac{u + {iv}}{q}\Leftrightarrow\frac{i\left( {x + {iy}} \right)}{2\quad \pi \quad r^{3}} \right. = {\frac{i\quad \exp \quad \left( {i\quad \theta} \right)}{{2\pi \quad r^{2}}\quad} = {k\quad \left( {x,y} \right)}}}}} & (35) \end{matrix}$

[0166] wherein the spatial polar coordinates satisfy the following: $\begin{matrix} \left. \begin{matrix} {{x^{2} + y^{2}} = r^{2}} \\ {x = {r\quad \cos \quad (\theta)}} \\ {y = {r\quad \sin \quad (\theta)}} \end{matrix} \right\} & (36) \end{matrix}$

[0167] The convolution kernel k reduces by the inverse square of the radius, and also has a spiral phase structure, but rotated by 90° with respect of the x-y coordinates. According to the above, since it is now known those operations required to be performed to extract local orientation information from a fringe pattern, it is not necessary to perform such calculations in the Fourier domain. Rather, the desired functions may be recalculated in the real domain thereby facilitating ease of processing. In many cases the desired functions may be approximated by suitably truncated kernels. The inverse square drop-off allowing relatively small truncation errors even for small kernels

[0168] Referring again to FIG. 1, by considering a sufficiently small region Ω of images composed of line or edge features, the local structure fits the model of Equation (1). This is true for many image features, the most obvious exceptions being textures that contain multiple AM-FM modulated signals. Sometimes an image may approximate the model of Equation (17) except for a low or zero frequency background offset in intensity. In such cases this background level may be removed by high pass filtering (or related methods) leaving an image that does satisfy Equation (17) which can then be processed using the complex energy operator formalism.

[0169] Where Equation (17) is representative, the modified energy operator Ψ_(M), as defined in Equation (34), may be used for the calculation of the orientation angle β₀ of all such images.

[0170] An example of such an image and the operation of the modified energy operator Ψ_(M) are shown in FIGS. 15A to 15E. FIG. 15A shows a texture image. The texture image is characterised by distinct lines 40 and areas of low variation 41. The magnitude and phase components respectively of the complex energy operator Ψ_(c) are shown in FIGS. 15B and 15C, while the magnitude and phase components respectively of the modified energy operator Ψ_(M) are shown in FIGS. 15D and 15E. The phase component of the modified energy operator Ψ_(M) provides a result that is more intuitively representative of the orientation of the texture image of FIG. 15A.

[0171] A flow diagram of a method 400 of estimating the pattern and texture orientation of images is shown in FIG. 16. An input image is inserted in step 405. The input image is typically digital format with a predetermined number of columns and rows. Alternatively the image may be scanned to convert it into the digital format.

[0172] Although the preceding analysis has been in terms of continuous functions and continuous operations, the analysis is also directly applicable to discretely sampled functions (images) and discrete operations.

[0173] A Fourier transform of the image is calculated in step 410, typically using the Fast Fourier Transform (FFT). The Fourier transformed image is multiplied with a term exp(iφ) in step 420.

[0174] An output of step 420 is again multiplied with the term exp(iφ) in step 430 before it is inverse Fourier transformed, typically using an Inverse Fast Fourier Transform (IFFT) in step 440. The result is then multiplied with the input signal in step 470.

[0175] The output from step 420 is also inverse Fourier transformed in step 450 before it is squared in step 460. The output from step 470 is subtracted from the output of step 460 in step 480. From this complex signal, the angle of the signal is calculated in step 490 before it is halved in step 494 to provide an orientation angle β₀ as an output in step 496.

[0176] As noted above, the orientation estimate is modulo π but can be unwrapped using continuity constraints to obtain an estimate that is modulo 2π.

[0177] Interferometry is the use of interference phenomena for measurement purposes. This allows for the measurement of very small angles or small displacements of objects relative to one another. An interferometer is a device to make such measurements, which typically uses a beam of light, coming from a single source, such as a star, a laser or a lamp, and two or more flat mirrors to split off different light beams. These beams are then combined so as to ‘interfere’ with each other. The beams interfere with each other by constructively adding together and cancelling each other out, thereby forming alternating bands of light and dark, called fringe patterns.

[0178] What makes the interferometer such a precise measuring instrument is that these fringes are only one light-wavelength apart, which for visible light corresponds to about 590 nm. With the fringe patterns having a cyclic nature with phases that shifted, the important measurement parameter is the relative phase-shifts between these phase-related fringe patterns.

[0179] Consider an intensity ƒ_(n)(x,y) of the n^(th) fringe pattern in a sequence of phase-related fringe patterns with the following mathematical form:

ƒ_(n)(x,y)=a(x,y)+b(x,y)cos[χ(x,y)+δ_(n)]  (37)

[0180] wherein a(x,y) is again denotes a background or offset, b(x,y) the amplitude modulation, and χ(x,y) the phase. Each fringe pattern has a phase shift parameter δ_(n). An example of such a fringe pattern is shown in FIG. 20.

[0181] An improved method of estimating relative phase-shifts between phase-related fringe patterns ƒ_(n) is proposed. The method is based on an isotropic quadrature transform. The isotropic quadrature transform is used to estimate the spatial phase [χ(x,y)+δ_(n)] in one fringe pattern ƒ_(n), followed by comparing the spatial phase [χ(x,y)+δ_(n)] between fringe patterns ƒ_(n) to estimate the relative phase-shift(s). With 3 or more frames, the method is independent of background variations a(x,y).

[0182] The exact value of phase χ(x,y) can be calculated from three or more fringe patterns ƒ_(n) if the values of the phase shift parameter δ_(n) is known for each fringe pattern ƒ_(n). For more than three fringe patterns ƒ_(n)(x,y), the phase χ(x,y) is over-determined and is usually estimated in a maximum likelihood process. Other estimation processes may be more appropriate in cases where additional systematic error or distortion effects apply to Equation (37).

[0183] Consider a least squares estimate for the phase χ(x,y) from N fringe patterns: $\begin{matrix} {{\begin{pmatrix} {\sum 1} & {\sum c_{n}} & {\sum s_{n}} \\ {\sum c_{n}} & {\sum c_{n}^{2}} & {\sum{s_{n\quad}c_{n}}} \\ {\sum s_{n}} & {\sum{s_{n}c_{n}}} & {\sum s_{n}^{2}} \end{pmatrix}\quad \begin{pmatrix} a \\ {{+ b}\quad \cos \quad \chi} \\ {{- b}\quad \cos \quad \chi} \end{pmatrix}} = \begin{pmatrix} {\sum f_{n}} \\ {\sum{c_{n}f_{n}}} \\ {\sum{s_{n}f_{n}}} \end{pmatrix}} & (38) \end{matrix}$

[0184] where c_(n)=cosδ_(n), and s_(n)=sin δ_(n), and the summations are over N fringe patterns ie. $\sum{= \sum\limits_{n = 1}^{N}}$

[0185] . Least squares Equation (38) can be inverted, providing c_(n) and s_(n) are such that a singular matrix does not occur, as follows: $\begin{matrix} {\quad {{\begin{pmatrix} a \\ {{+ b}\quad \cos \quad \chi} \\ {{- b}\quad \cos \quad \chi} \end{pmatrix}\quad \begin{pmatrix} {\sum 1} & {\sum c_{n}} & {\sum s_{n}} \\ {\sum c_{n}} & {\sum c_{n}^{2}} & {\sum{s_{n\quad}c_{n}}} \\ {\sum s_{n}} & {\sum{s_{n}c_{n}}} & {\sum s_{n}^{2}} \end{pmatrix}^{- 1}} = \begin{pmatrix} {\sum f_{n}} \\ {\sum{c_{n}f_{n}}} \\ {\sum{s_{n}f_{n}}} \end{pmatrix}}} & (39) \end{matrix}$

[0186] Equation (39) allows for the offset a(x,y), the amplitude modulation b(x,y), and the phase χ(x,y) to be calculated. However, before Equation (39) can be used, all the phase shift parameters δ_(n) must be known,

[0187] The phase shift parameter δ_(n) of each fringe pattern is estimated by using a 2-D quadrature technique based on a spiral phase Fourier operator. Estimation of phase χ(x,y) in the above manner has many advantages related to the extraordinary demodulation properties of the spiral phase Fourier operator.

[0188] A first step in determining the phase shift parameters δ_(n) is to remove the background (offset) a(x,y) from each of the fringe patterns ƒ_(n)(x,y). In the preferred implementation, this is done by forming inter-frame differences between pairs of fringe patterns ƒ_(n)(x,y) as follows:

g _(nm)=ƒ_(n)−ƒ_(m) =−g _(mn) =b{cos[χ+δ_(n)]−cos[χ+δ_(m)]}  (40)

[0189] The inter-frame difference function g_(nm) is a pure AMFM (amplitude modulation and frequency modulation) function without offset and therefore can be demodulated if the inter-frame difference function g_(nm), which is also a fringe pattern, is locally simple. For the fringe pattern g_(nm) to be locally simple, it has to have a unique orientation β(x,y) and spacing λ(x,y) at each location (x,y), except, perhaps, at a finite number of locations where the orientation β(x,y) and/or spacing λ(x,y) may be uncertain. Advantageously, local simplicity is a property which distinguishes fringe patterns from other, more general, patterns. FIG. 1 shows the local structure of a typical fringe pattern for the small region Ω.

[0190] A spiral phase Fourier operator V{ }, hereinafter referred to as a vortex operator, is defined as follows: $\begin{matrix} \left. {{{V\left\{ {f\left( {x,y} \right)} \right\}} = {F^{- 1}\left\{ {{\exp \left\lbrack {i\quad \varphi} \right\rbrack}F\left\{ {f\left( {x,y} \right)} \right\}} \right\}}}{{F\left\{ {f\left( {x,y} \right)} \right\}} = {{F\left( {u,v} \right)} = {\int_{- \infty}^{+ \infty}{\int_{- \infty}^{+ \infty}{{f\left( {x,y} \right)}{\exp \quad\left\lbrack {{- 2}\pi \quad {i\left( {{ux} + {vy}} \right)}} \right\rbrack}{x}{y}}}}}}{{F^{- 1}\left\{ {F\left( {x,y} \right)} \right\}} = {{F\left( {x,y} \right)} = {\int_{- \infty}^{+ \infty}{\int_{- \infty}^{+ \infty}{{F\left( {u,v} \right)}{\exp \quad\left\lbrack {{+ 2}\pi \quad {i\left( {{ux} + {vy}} \right)}} \right\rbrack}{u}{v}}}}}}\begin{matrix} {u = {q\quad \cos \quad \varphi}} \\ {v = {q\quad \sin \quad \varphi}} \end{matrix}} \right\} & (41) \end{matrix}$

[0191] The Fourier operator F { } transforms a general function ƒ(x,y) from the spatial domain (x,y) to the spatial frequency domain (u,v). The Inverse Fourier operator F⁻¹{ } transforms a spatial frequency domain signal back to the spatial domain (x,y). In practice, for discretely sampled images, the Fourier and the Inverse Fourier transforms are efficiently performed by a Fast Fourier transform algorithm and an Inverse Fast Fourier transform algorithm.

[0192] The spiral phase exp[iφ] is wholly a function of the angular component of the spatial frequency polar coordinates (q, φ) shown in FIG. 17. The vortex operator V{ } is applied to the inter-frame difference functions g_(nm) to obtain:

V{g _(nm) }≅i exp[iβ]b[sin(χ+δ_(n))−sin(χ+δ_(m))]  (42)

[0193] From Equation (42) it can be seen that the vortex operator V{ } is an isotropic quadrature operator in that it converts cosine fringes at any orientation β(x,y) into sine fringes at the same orientation β(x,y). The approximation in Equation (42) is valid except in regions where the amplitude modulation b(x,y), spacing λ(x,y) or orientation β(x,y) vary too rapidly. Areas where the radius of curvature of the fringe pattern g_(nm) is smaller than the fringe spacing λ(x,y) also give a lower accuracy approximation. However, for most typical fringe patterns g_(nm), the approximation is good and any errors are isotropically distributed. In contrast, conventional methods, such as the half-plane Hilbert transform, cause highly directional errors, and are not suitable for high precision demodulation of general fringe patterns.

[0194] Next, the local orientation β(x,y) is compensating for. To do so, the orientation β(x,y) must be estimated. There are a number of ways to do this. One method relies on the gradient of the fringe pattern g_(nm). The ratio of the x and y components gives the tangent angle β(x,y) from the local Taylor's series expansion of the phase χ(x,y) about the point (x₀,y₀): $\begin{matrix} {{{{{{{{\chi \left( {x,y} \right)} = {\chi_{00} + {2\pi \quad {u_{0}\left( {x - x_{0}} \right)}} + {2\quad \pi \quad {v_{0}\left( {y - y_{0}} \right)}} + {O\left( r^{2} \right)}}}{\quad\frac{\partial{\chi \left( {x,y} \right)}}{\partial x}}}}_{\underset{y = y_{0}}{x = x_{0}}} \cong {2\quad \pi \quad u_{0}}}{\quad\frac{\partial{\chi \left( {x,y} \right)}}{\partial y}}}}_{\underset{y = y_{0}}{x = x_{0}}} \cong {2\quad \pi \quad v_{0}}} & (43) \end{matrix}$

[0195] The gradient components are: $\begin{matrix} {{\frac{\partial g_{nm}}{\partial x} \cong {{b\left( {{- {\sin \left( {\chi + \delta_{n}} \right)}} + {\sin \quad \left( {\chi + \delta_{m}} \right)}} \right)}\frac{\partial\chi}{\partial x}}}{\frac{\partial g_{nm}}{\partial y} \cong {{b\left( {{- {\sin \left( {\chi + \delta_{n}} \right)}} + {\sin \quad \left( {\chi + \delta_{m}} \right)}} \right)}\frac{\partial\chi}{\partial y}}}} & (44) \end{matrix}$

[0196] The ratio of the gradient components gives the tangent angle: $\begin{matrix} {{{\frac{\partial g_{nm}}{\partial y}/\frac{\partial g_{nm}}{\partial x}} \cong \frac{v_{0}}{u_{0}}} = {\tan \quad \beta_{nm}}} & (45) \end{matrix}$

[0197] Again the approximation of Equation (45) is valid in regions with smoothly varying parameters as defined for the vortex operator V{ }. Other methods of orientation estimation may be used. For example, methods based on the multi-dimensional energy operator or the vortex operator itself may be used. Generic orientation estimation is assumed at this point, and the orientation β for any fringe pattern ƒ_(n) or inter-frame difference function g_(nm) may be calculated. Alternatively the orientation β may be estimated from combinations of the previous methods in a statistically advantage manner It will be assumed hereinafter that there is just one orientation estimate, which shall be called orientation estimate β_(e). The orientation estimate β_(e) typically contains an ambiguity in the sign: $\begin{matrix} {{\exp \quad\left\lbrack {i\quad \beta} \right\rbrack} = {{{\cos \quad \beta} + {i\quad \sin \quad \beta}} = {\pm \frac{u_{0} + {iv}_{0}}{\sqrt{u_{0}^{2} + v_{0}^{2}}}}}} & (46) \end{matrix}$

[0198] Different orientation estimates β_(e) typically have the sign ambiguities in different places. It is worth noting that the overall sign ambiguity arises from the general difficulty in distinguishing a fringe at orientation β from a fringe at orientation β+π.

[0199] Equation (40) is rewritten as:

g _(nm)=2b sin[χ+(δ_(m)+δ_(n))/2]sin[(δ_(m)−δ_(n))/2]  (47)

[0200] and Equation (42) as:

exp[−iβ _(e) ]V{g _(nm)}≅2ib exp[i(β−β_(e))]cos[χ+(δ_(m)+δ_(n))/2]sin[(δ_(m)−δ_(n))/2]  (48)

[0201] The complex exponential in Equation (48) has possible values {−1;1}, depending on the orientation estimate β_(e), and shall be called a polarity factor h(x,y):

h(x,y)=exp [i(β−β_(ε))]  (49)

[0202] A contingent analytic image {haeck over (g)}_(nm) is defined as:

{haeck over (g)} _(nm) ≅i(g _(nm)−exp[−iβ _(c) ]V{g _(nm)})   (50)

[0203] By substituting Equations (47), (48) and (49) into Equation (50), the contingent analytic image {haeck over (g)}_(nm) is rewritten as:

{haeck over (g)} _(nm)≅2b sin[(δ_(m)−δ_(n))/2](h cos[χ+(δ_(m)+δ_(n))/2]+i sin[χ+(δ_(m)+δ_(n))/2])   (51)

[0204] This definition of an analytic image is contingent upon the orientation function β_(e) used in the definition shown in Equation (50). It is noted that the contingent analytic image {haeck over (g)}_(nm) can be achieved by placing the inter-frame difference function g_(nm) in the imaginary part of a complex image, and placing the imaginary output of the vortex operator V{ } in the real part.

[0205] A phase α_(nm) of the contingent analytic image {haeck over (g)}_(nm) is calculated as follows.

a _(nm) =Arg{ig _(nm) −i exp[−iβ _(c) ]V{g _(nm) }}≅h[χ+(δ_(m)+δ_(n))/2]  (52)

[0206] The calculation of phase α_(nm) is possible as long as sin[(δ_(m)−δ_(n))/2]≠0, which only occurs if δ_(m)−δ_(n)≠2πj where j is an integer. Clearly the failure to calculate phase α_(nm) in such a case is due to the phase shifts δ_(m) and δ_(m) being essentially equal and the inter-frame difference function g_(nm) being identically zero.

[0207] The phase difference between dependent pairs of contingent analytic images, such as {haeck over (g)}_(nm) and {haeck over (g)}_(mk), is calculated as follows:

α_(nm)−α_(mk) =h[χ+(δ_(m)+δ_(n))/2]−h[χ+(δ_(k)+δ_(m))/2]=h[(δ_(n)−δ_(k))/2]  (53)

[0208] This allows a difference in phase between any two fringe patterns ƒ_(n) and ƒ_(k) to be found, namely (δ_(n)−δ_(k)), with a sign ambiguity as a result of the polarity factor h. It is noted that all phase calculations, including phase differences, are calculated modulo 2π. Various methods may be used to extract both the polarity factor h and the phase differences (δ_(n)−δ_(k)). In a simplest implementation, from Equation (53), the absolute values of the phase difference between two fringe patterns ƒ_(n) and ƒ_(k) are averaged over the full fringe pattern area S: $\begin{matrix} {{{\delta_{n} - \delta_{k}}}_{mean} = {2\frac{\int{\int_{S}{{{\alpha_{nm} - \alpha_{mk}}}{x}{y}}}}{\int{\int_{S}{{x}{y}}}}}} & (54) \end{matrix}$

[0209] A preferred implementation uses a weighted integral with weighting w(x,y) over the fringe pattern area S. The weighting w(x,y) used should be a measure of the estimated accuracy of the local estimate of the phase α_(nm). This is related to the AMFM characteristics of the fringe patterns ƒ_(n)(x,y) in the sequence of phase-related fringe patterns. Thus, the absolute values of the phase difference (δ_(n)−δ_(k)) between two fringe patterns ƒ_(n) and ƒ_(k), weighted averaged over the full fringe pattern area S is: $\begin{matrix} {{{\delta_{n} - \delta_{k}}}_{\begin{matrix} {weighted} \\ {mean} \end{matrix}} = {2\frac{\int{\int_{S}{{{\alpha_{nm} - \alpha_{mk}}}{w^{2}\left( {x,y} \right)}{x}{y}}}}{\int{\int_{S}{{w^{2}\left( {x,y} \right)}{x}{y}}}}}} & (55) \end{matrix}$

[0210] This allows for a very low (or zero) weighting w(x,y) to be used where the phase α_(nm) varies quickly, as is the case for discontinuities, or areas where the modulation b(x,y) is low Equation (53) can be rewritten as: $\begin{matrix} {\frac{\alpha_{nm} - \alpha_{mk}}{{\alpha_{nm} - \alpha_{mk}}} = {{{h\left( {x,y} \right)}\delta_{n}} - \frac{\delta_{k}}{{\delta_{n} - \delta_{k}}}}} & (56) \end{matrix}$

[0211] By arbitrarily taking the phase difference (δ_(n)−δ_(k)) for these particular values of n and k as positive, from Equation (56) follows an estimated polarity factor h_(e) as: $\begin{matrix} {{h_{c}\left( {x,y} \right)} = \frac{\alpha_{nm} - \alpha_{mk}}{{\alpha_{nm} - \alpha_{mk}}}} & (57) \end{matrix}$

[0212] This estimated polarity factor function h_(e) can be used in all further computations, because a global sign convention has effectively been set for the phase difference (δ_(n)−δ_(k)) in the fringe pattern sequence.

[0213] Next, the phase difference δ_(n)−δ_(k) may be calculated for all possible pairs. The minimum requirement is to calculate the phase difference δ_(n)−δ_(k) for all sequential pairs, which amounts to N values for N fringe patterns ƒ_(n). By also calculating the phase difference an δ_(n)−δ_(k) for non-sequential pairs, additional statistical robustness in the estimates is achieved. The number of combinations of two-phase differences δ_(n)−δ_(k) from N phases are: $\begin{matrix} \frac{N!}{2{\left( {N - 2} \right)!}} & (58) \end{matrix}$

[0214] In the particularly interesting case where N=3, the number of combination is also 3, which equals the number of sequential differences too. FIGS. 18A and 18B show the phase shift parameters δ_(n) for the case where N=5 on a polar plane. The points 1-5 are thus on a unity circle at points corresponding to exp(iδ_(n)). The connecting line between points n and m corresponds to [exp(iδ_(m))−exp(iδ_(n))]. The length of each connecting line is proportional to sin [(δ_(m)−δ_(n))/2], which also appeared in the inter-frame difference function g_(nm) of Equation (47). The length of each connecting line is a direct indication of the reliability of the estimate of the phase difference δ_(n)−δ_(k), as the length is the factor appearing in the magnitude of the inter-frame difference function g_(nm). FIG. 18A shows the connecting lines for all sequential pairs, whereas FIG. 18B shows all possible connecting lines, and thus inter-frame differences δ_(n)−δ_(k), which adds another 5 phase differences δ_(n)−δ_(k). With the phase differences γ_(mn) defined as γ_(mn)=δ_(m)−δ_(n), an estimation {overscore (γ)}_(mn) of each of the phase differences γ_(mn) may be calculated using a weighted mean, and compensated by the estimated polarity h_(e) as follows: $\begin{matrix} {\gamma_{nk} = \left\{ {2{\int{\int_{S}\frac{{h_{e}\left( {\alpha_{nm} - \alpha_{mk}} \right)}w^{2}\quad {x}\quad {y}}{\int{\int_{S}{w^{2}\quad {x}{y}}}}}}} \right\}_{{mod2}\quad \pi}} & (59) \end{matrix}$

[0215] In situations where the hinge patterns ƒ_(n) contain noise and/or other distortions, the best phase differences estimates {overscore (γ)}_(mn) may come from a two dimensional fit of all the points corresponding to exp(iδ_(n)), as shown in FIGS. 18A and 18B, to a unit radius circle.

[0216] Without loss of generality, one of the phase shift parameters δ_(n) may be set to zero. For convenience the first phase shift parameter δ₁=0 is set. This is consistent with the idea that the absolute value of the phase χ(x,y) is undefined and only phase differences γ_(mn)=δ_(m)−δ_(n) are really meaningful. The remaining (relative) phase shift parameters {overscore (δ)}_(n) are calculated as follows:

{overscore (δ)}₁=0

{overscore (δ)}₂={overscore (δ)}₁+{overscore (γ)}₂₁

{overscore (δ)}₃={overscore (δ)}₂+{overscore (γ)}₃₂

{overscore (δ)}₄={overscore (δ)}₃+{overscore (γ)}₄₃

{overscore (δ)}₅={overscore (δ)}₄+{overscore (γ)}₅₄   (60)

[0217] These values of the phase shift parameters δ_(n) are substituted back into the general PSA defined by Equation (39). This allows for all the fringe pattern parameters, namely the offset a(x,y), the amplitude modulation b(x,y), and a phase χ′(x,y) to be calculated. It is noted that the calculated phase χ′(x,y) then includes a common phase shift, namely the phase shift δ₁.

[0218] However, there may be some residual calibration error due to the original vortex operator failing in certain areas. These errors are rectified by re-evaluating the weight function w(x,y) based on the present estimates of the offset a(x,y), the amplitude modulation b(x,y), and phase χ′(x,y), as well as their partial derivatives. This allows for the assessment of how well the original fringe patterns, in the form of the inter-frame difference functions g_(nm), fulfilled the smoothness requirements of the vortex operator V{ }. Areas where the phase α_(nm) varies too quickly, or areas where the modulation b(x,y) is too low, the weighting function w(x,y) is reduced or set to zero. Once a new weight function w(x,y) is formed, the phase calibration process, from Equation (55) onwards, is repeated, resulting in better estimates for the phase shift parameters {overscore (δ)}_(n).

[0219] The accuracy of the estimates for the phase shift parameters {overscore (δ)}_(n) may be expressed as the variance of phase difference, as follows: $\begin{matrix} {\sigma_{\delta_{n} - \delta_{k}}^{2} = {4{\int\frac{\int_{S}{\left( {{{\alpha_{mn} - \alpha_{mk}}} - {\overset{\_}{\alpha}}_{nk}} \right)^{2}{w^{2}\left( {x,y} \right)}\quad {x}{y}}}{\int{\int_{S}{{w^{2}\left( {x,y} \right)}\quad {x}{y}}}}}}} & (61) \end{matrix}$

[0220] wherein $\begin{matrix} {a_{nk} = \frac{\int{\int_{S}{{{\alpha_{mn} - \alpha_{mk}}}\quad {w^{2}\left( {x,y} \right)}{x}{y}}}}{\int{\int_{S}{{w^{2}\left( {x,y} \right)}\quad {x}{y}}}}} & (62) \end{matrix}$

[0221] Care is needed in evaluating Equations (61) and (62), as the phase χ′(x,y) is periodic and false discontinuities can disrupt the calculations if {overscore (α)}_(nk) near −π or π.

[0222] Other methods for estimating these parameters {overscore (α)}_(nk) that specifically incorporate the cyclic nature may be used instead of Equation (62), for example:

{overscore (α)}_(nk) =arg {∫∫ _(S) exp[i|α _(nm)−α_(mk) |]w ²(x,y)dxdy}  (63)

[0223]FIG. 19 shows a preferred embodiment of a automatic phase-shift calibration method 600. A first step 610 receives a sequence of fringe patterns ƒ_(n). Each of the fringe patterns ƒ_(n) is real valued. An example of one of the fringe patterns ƒ_(n) from the sequence is shown in FIG. 20. Step 620 removes the fringe pattern offset a(x,y) from each of the fringe patterns ƒ_(n). This is done by forming inter-frame differences g_(nm) as defined in Equation (40). The inter-frame differences g_(nm) are also real valued.

[0224] Step 630 forms analytic images {haeck over (g)}_(nm) corresponding to the inter-frame differences g_(nm) as defined in Equation (51). This is preferably achieved by placing the inter-frame difference function g_(nm) in the imaginary part of a complex image, and placing the imaginary output of the vortex operator V{g_(nm)} in the real part. FIG. 21A and 21B show the magnitude and phase components respectively of an analytic image {haeck over (g)}_(nm) of the example fringe pattern ƒ_(n) shown in FIG. 20. To enable the values of the phase components of the analytic image {haeck over (g)}_(nm) to be displayed, the values have been adapted to a range [0;255] with 0 representing −π and 255 representing $\frac{127}{128}{\pi.}$

[0225] Step 140 extracts the phase difference α_(nm)−α_(mk) (modulo 2π) from two dependent analytic images {haeck over (g)}_(nm) and {haeck over (g)}_(mk). FIG. 22A shows a phase difference α_(nm)−α_(mk) between dependent analytic images {haeck over (g)}_(nm) and {haeck over (g)}_(mk) of the example fringe pattern ƒ_(n). Again, the values of the phase difference α_(nm)−α_(mk) have been adapted to a range [0;255] with 0 representing −π and 255 representing ${\frac{127}{128}\pi},$

[0226] , allowing the values to be displayed. The dark areas 710 and 711 have values close to zero on the representation, which corresponds to values for close to −π in the phase difference α_(nm)−α_(mk), whereas the light areas 720 and 721 have values close to 255 in the representation, which corresponds to values close to π in the phase difference α_(nm)−α_(mk). Accordingly, a value of 128 in the representation corresponds to a value of 0 in the phase difference α_(nm)−α_(mk). The spread of values in the representation is shown in the histogram of FIG. 22B. The peaks 730 and 731 in the histogram corresponds to phase difference α_(nm)−α_(mk) values.

[0227] Step 150 determines a modulus of the phase difference |α_(nm)−α_(mk)|. FIG. 23A shows the modulus |α_(nm)−α_(mk)| of the phase difference α_(nm)−α_(mk) represented in FIG. 22A. Again the values have been adapted to a range [0;255] with 0 representing −π and 255 representing $\frac{127}{128}{\pi.}$

[0228] . As can be seen from FIG. 23A, all the values have a small variation. This is confirmed in the histogram shown in FIG. 23B, wherein the spread of values in the representation is shown. A single peak 910 in the histogram corresponds to modulus of phase difference |α_(nm)−α_(mk)| values. It is noted that the values have only a small spread around the peak value.

[0229] Step 660 calculates the estimated polarity factor h_(e)(x,y), using Equation (37). The result is shown in FIG. 24 wherein all regions have values −1 or 1, with the dark areas corresponding to values of −1 and the light areas corresponding to values of 1. The phase differences {overscore (γ)}_(mn) are calculated using Equation (59) and the relative phase-shift parameters {overscore (δ)}_(n)={overscore (δ)}_(n-1)+{overscore (γ)}_(n(n-1)) are estimated in a consistent manner in step 670.

[0230] The relative phase-shift parameters {overscore (δ)}_(n) are then substituted into the general PSA defined by Equation (39) and the fringe pattern offset a(x,y), the modulation b(x,y), and phase χ′(x,y) are estimated in step 680. The resultant modulation b(x,y), phase χ′(x,y) and offset a(x,y) of the fringe pattern ƒ_(n)(x,y) of the example are shown in FIGS. 25A, 25B and 26 respectively. It is noted that FIGS. 25A and 26 appear almost uniformly white, which corresponds to almost no variation in the values of the modulation b(x,y) and offset a(x,y) with respect to coordinates (x,y) for the example shown.

[0231] Step 690 estimates the likely errors in the earlier contingent analytic images {haeck over (g)}_(nm) and {haeck over (g)}_(mk) by means of a direct comparison of the analytic image {haeck over (g)}_(nm) and the PSA image. Step 692 determines whether these errors are higher than a preset threshold. If the errors are smaller than the threshold, the method 600 ends in step 696. If these errors are higher than the threshold, the errors are incorporated into the weighting w(x,y) in step 694 and the method 600 returns to step 670 in an iterative manner, where the new weighting w(x,y) is applied to the estimation of the mean phase-difference {overscore (γ)}_(mn), until the errors are sufficiently low. In a simplest embodiment, the weighting w(x,y) is set to 1 for coordinates (x,y) where the comparison is good and 0 where the comparison is poor.

[0232]FIG. 27 shows an example where the comparison of step 690 yields a weighting w(x,y) which is 1.0 where the comparison is good and 0.0 where the comparison is poor.

[0233] It is generally noted that in Equations with integrals over all values of x and y, such as Equations (41, 54, 55, 59 and 61), the integrals may be replaced by discrete summations for discretely sampled images.

[0234] The implementation is applicable to interferometric testing of optical components and optical systems. The embodiment may also be used in non-destructive testing to study the deformation of objects under stress, and the study of vibrating objects to identify vibration modes. Often, optical techniques are also used to visualise fluid flows, and variations in density are displayed in the form of fringe patterns.

[0235] The methods of demodulating a two-dimensional pattern, of estimating an orientation angle of a pattern in an image, and of estimating relative phase shifts between fringe pattern images may be practiced using a conventional general-purpose computer system 100, such as that shown in FIG. 28 wherein the processes of FIGS. 3, 4, 16 and 19 may be implemented as software, such as an application program executing within the computer system 800. In particular, the steps of such methods are effected by instructions in the software that are carried out by the computer. The software may be stored in a computer readable medium, including the storage devices described below. The software is loaded into the computer from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer preferably effects an advantageous apparatus for the methods described above.

[0236] The computer system 800 comprises a computer module 802, input devices such as a keyboard 810 and mouse 812, output devices including a printer 808 and a display device 804.

[0237] The computer module 802 typically includes at least one processor unit 814, a memory unit 818, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output (I/O) interfaces including a video interface 822, and an I/O interface 816 for the keyboard 810 and mouse 812. A storage device 824 is provided and typically includes a hard disk drive 826 and a floppy disk drive 828. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 820 is typically provided as a non-volatile source of data. The components 814 to 828 of the computer module 802, typically communicate via an interconnected bus 830 and in a manner which results in a conventional mode of operation of the computer system 100 known to those in the relevant art. Examples of computers on which the embodiments can be practised include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.

[0238] Typically, the application program of the preferred embodiment is resident on the hard disk drive 826 and read and controlled in its execution by the processor 814. Intermediate storage of the program may be accomplished using the semiconductor memory 818, possibly in concert with the hard disk drive 826. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 820 or 828, or alternatively may be read by the user from a network via a modem device (not illustrated). Still further, the software can also be loaded into the computer system 800 from other computer readable medium including magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer module 802 and another device, a computer readable card such as a PCMCIA card, and the Internet and Intranets including email transmissions and information recorded on websites and the like. The foregoing is merely exemplary of relevant computer readable mediums. Other computer readable mediums may be practiced without departing from the scope and spirit of the invention.

[0239] The methods may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.

[0240] The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiment being illustrative and not restrictive. 

We claim:
 1. A method of demodulating a real two-dimensional pattern, the method comprising the steps of: estimating a quadrature two-dimensional pattern from said real two-dimensional pattern using a two-dimensional spiral phase filter; and creating a demodulated image by combining said real two-dimensional pattern and said estimated quadrature two-dimensional pattern.
 2. A method as claimed in claim 1 , wherein said estimating step includes the steps of: generating a frequency domain signal from said real two-dimensional pattern using a linear transform; applying said two-dimensional spiral phase filter to at least part of said frequency domain signal to provide a filter signal; generating a spatial domain pattern from said filtered signal using an inverse of said linear transform; and extracting from the spatial domain pattern an estimate of said quadrature two-dimensional pattern.
 3. A method as claimed in claim 1 , wherein said estimating step includes the steps of: convolving said real two-dimensional pattern with a complex function to provide a convolved spatial domain pattern, said complex function being an inverse Fourier transform of said two-dimensional spiral phase filter; and extracting from the spatial domain pattern an estimate of said imaginary two-dimensional pattern.
 4. A method as claimed in claim 2 , wherein the extracting step further includes determining an approximate orientation angle of at least one fringe pattern in said spatial domain pattern.
 5. A method as claimed in claims 4 wherein determining said approximate orientation angle of at least one fringe pattern in said spatial domain pattern step comprises the steps of: applying a complex energy operator to the image to provide an energy encoded image; determining a phase component of said energy encoded image; and calculating said orientation angle from said phase component of said energy encoded image.
 6. A method as claimed in claim 5 wherein said complex energy operator is defined as: Ψ_(c){ƒ}=(D{ƒ})² −ƒD ²{ƒ} and said phase component of said energy encoded image is defined as: 2β₀ =arg(Ψ_(c){ƒ})
 7. A method as claimed in claim 5 wherein said complex energy operator is a modified complex energy operator defined as: Ψ_(M){ƒ}=(D _(M){ƒ})² ƒD _(M) ²{ƒ} and said phase component of said energy encoded image is defined as: 2β₀ =arg(Ψ_(M){ƒ})
 8. A method as claimed in claim 5 wherein said image is pre-processed to remove background offsets.
 9. Apparatus for demodulating a real two-dimensional pattern, the apparatus comprising: means for estimating a quadrature two-dimensional pattern from said real two-dimensional pattern using a two-dimensional spiral phase filter; and means for creating a demodulated image by combining said real two-dimensional pattern and said estimated quadrature two-dimensional pattern.
 10. Apparatus as claimed in claim 9 , wherein said means for estimating an imaginary two-dimensional pattern includes: means for generating a frequency domain signal from said real two-dimensional pattern using a linear transform; means for applying said two-dimensional spiral phase filter to at least part of said frequency domain signal to provide a filter signal; means for generating a spatial domain pattern from said filtered signal using an inverse of said linear transform; and means for extracting from the spatial domain pattern an estimate of said quadrature two-dimensional pattern.
 11. Apparatus as claimed in claim 9 , wherein said means for estimating an imaginary two-dimensional pattern includes: means for convolving said real two-dimensional pattern with a complex function to provide a convolved spatial domain pattern, said complex function being an inverse Fourier transform of said two-dimensional spiral phase filter; and means for extracting from the spatial domain pattern an estimate of said imaginary two-dimensional pattern.
 12. Apparatus as claimed in claim 10 or 11 , wherein the extracting means further includes means for determining an approximate orientation angle of at least one fringe pattern in said spatial domain pattern.
 13. Apparatus as claimed in claims 12 wherein said means for determining said approximate orientation angle of at least one fringe pattern in said spatial domain pattern comprises: means for applying a complex energy operator to the image to provide an energy encoded image; means for determining a phase component of said energy encoded image; and means for calculating said orientation angle from said phase component of said energy encoded image.
 14. Apparatus for calculating a quadrature conjugate of a real two-dimensional code pattern, the apparatus comprising: a first spatial light modulator for modulating coherent light to produce said real two-dimensional pattern; a first lens for Fourier transformation of said real two-dimensional pattern to produce a first Fourier transformed image; a second spatial light modulator or spiral phase plate for phase modulating said first Fourier transformed image to produce a phase modulated image; a second lens for Fourier transformation of said phase modulated image to produce a second Fourier transformed image; a third spatial light modulator or spiral phase plate for phase modulating said second Fourier transformed image to produce said conjugate of said real two-dimensional pattern; and an image sensor for capturing said conjugate of said real two-dimensional pattern.
 15. A method of estimating an orientation angle of a pattern in an image, said method comprising the steps of: applying a complex energy operator to the image to provide an energy encoded image; determining a phase component of said energy encoded image; and calculating said orientation angle from said phase component of said energy encoded image.
 16. A method as claimed in claim 15 wherein said complex energy operator is defined as: Ψ_(c){ƒ}=(D{ƒ})² −ƒD ²{ƒ} and said phase component of said energy encoded image is defined as: 2β₀ =arg(Ψ_(c){ƒ})
 17. A method as claimed in claim 15 wherein said complex energy operator is a modified complex energy operator defined as: Ψ_(M){ƒ}=(D _(M){ƒ})² −ƒD _(M) ²{ƒ} and said phase component of said energy encoded image is defined as: 2β₀ =arg(Ψ_(M){ƒ})
 18. A method as claimed in claim 15 wherein said image is pre-processed to remove background offsets.
 19. Apparatus for estimating an orientation angle of a pattern in an image, said apparatus comprises: means for applying a complex energy operator to the image to provide an energy encoded image; means for determining a phase component of said energy encoded image; and means for calculating said orientation angle from said phase component of said energy encoded image.
 20. Apparatus as claimed in claim 19 wherein said complex energy operator is defined as: Ψ_(c){ƒ}=(D{ƒ})² −ƒD ²{ƒ} and said phase component of said energy encoded image is defined as: 2β₀ =arg(Ψ_(c){ƒ})
 21. Apparatus as claimed in claim 19 wherein said complex energy operator is a modified complex energy operator defined as: Ψ_(M){ƒ}=(D _(M){ƒ})² −ƒD _(M) ²{ƒ} and said phase component of said energy encoded image is defined as: 2β₀ =arg(Ψ_(M){ƒ})
 22. Apparatus as claimed in claim 19 , said apparatus further comprising a means for pre-processing said image to remove background offsets.
 23. A method of estimating relative phase shifts between fringe pattern images in a sequence of phase-related fringe patterns, said method comprising the steps of: a) removing offsets from each of said fringe pattern images to obtain pure AMFM patterns; b) determining contingent analytic images corresponding to each of said AMFM patterns; c) determining phase differences from dependent pairs of said contingent analytic images; and d) estimating phase shifts between pairs of said contingent analytic images, wherein said phase shifts between pairs of said contingent analytic images are said relative phase shifts between fringe pattern images.
 24. A method as claimed in claim 23 wherein said removing step is performed by calculating interframe difference images between pairs of said fringe pattern images.
 25. A method as claimed in claim 23 wherein said contingent analytic images comprise complex images with said AMFM patterns as imaginary parts and imaginary parts of a vortex operator applied to said AMFM patterns in said real parts
 26. A method as claimed in claim 23 further comprising the steps of: e) estimating a spatial phase of said fringe pattern images; f) estimating an amplitude modulation and said offset of said fringe pattern images; g) determining an accuracy measure of said contingent analytic images from said estimated amplitude modulation, offset and spatial phase; h) determining a weighting function wherein areas of low accuracy measure are given a low weighting; and i) iteratively repeating steps d) to h) by applying said weighting function in step d), until said accuracy measure is above a predetermined quantity.
 27. A method as claimed in claim 26 wherein said accuracy measure determination step is performed by comparing one of said analytic images with a reconstructed fringe pattern, wherein said reconstructed fringe pattern is reconstructed using said estimated amplitude modulation, offset and spatial phase.
 28. A method of estimating a spatial phase of fringe pattern images in a sequence of fringe patterns, said method comprising the steps of: a) removing offsets from each of said fringe pattern images to obtain pure AMFM patterns; b) determining contingent analytic images corresponding to each of said AMFM patterns; c) determining phase differences from dependent pairs of said contingent analytic images; d) estimating phase shifts between pairs of said contingent analytic images; and e) estimating a spatial phase of said fringe pattern images.
 29. A method as claimed in claim 28 wherein said removing step is performed by calculating interframe difference images between pairs of said fringe pattern images.
 30. A method as claimed in claim 28 wherein said contingent analytic images comprise complex images with said AMFM patterns as imaginary parts and imaginary parts of a vortex operator applied to said AMFM patterns in said real parts.
 31. A method as claimed in claim 28 further comprising the steps of: f) estimating an amplitude modulation and said offset of said fringe pattern images; g) determining an accuracy measure of said contingent analytic images from said estimated amplitude modulation, offset and spatial phase; h) determining a weighting function wherein areas of low accuracy measure are given a low weighting; and i) iteratively repeating steps d) to h) by applying said weighting function in step d), until said accuracy measure is above a predetermined quantity.
 32. A method as claimed in claim 31 wherein said accuracy measure determination step is performed by comparing one of said analytic images with a reconstructed fringe pattern, wherein said reconstructed fringe pattern is reconstructed using said estimated amplitude modulation, offset and spatial phase.
 33. A method as claimed in claim 23 wherein an intensity of said fringe pattern images are in the form: ƒ_(n)(x,y)=a(x,y)+b(x,y)cos[χ(x,y)+δ_(n)] wherein a(x,y) is said offset, b(x,y) is said amplitude modulation χ(x,y) is said spatial phase and δ_(n) is a phase shift parameter.
 34. Apparatus for estimating relative phase shifts between fringe pattern images in a sequence of phase-related fringe patterns, said apparatus comprising: means for removing offsets from each of said fringe pattern images to obtain pure AMFM patterns; means for determining contingent analytic images corresponding to each of said AMFM patterns; means for determining phase differences from dependent pairs of said contingent analytic images; and means for estimating phase shifts between pairs of said contingent analytic images, wherein said phase shifts between pairs of said contingent analytic images are said relative phase shifts between fringe pattern images.
 35. Apparatus as claimed in claim 34 wherein said means for removing offsets comprises means for calculating interframe difference images between pairs of said fringe pattern images.
 36. Apparatus as claimed in claim 34 wherein said contingent analytic images comprise complex images with said AMFM patterns as imaginary parts and imaginary parts of a vortex operator applied to said AMFM patterns in said real parts.
 37. Apparatus as claimed in claim 34 further comprising: means for estimating a spatial phase of said fringe pattern images; means for estimating an amplitude modulation and an offset of said fringe pattern images; means for determining an accuracy measure of said contingent analytic images from said estimated amplitude modulation, offset and spatial phase; means for determining a weighting function wherein areas of low accuracy measure are given a low weighting; and iterative means for providing said weighting function to said means for estimating phase shifts, until said accuracy measure is above a predetermined quantity.
 38. Apparatus as claimed in claim 37 wherein said means for determining an accuracy measure comprises a comparator for comparing one of said analytic images with a reconstructed fringe pattern, wherein said reconstructed fringe pattern is reconstructed using said estimated amplitude modulation, offset and spatial phase.
 39. Apparatus for estimating a spatial phase of fringe pattern images in a sequence of fringe patterns, said apparatus comprising: means for removing offsets from each of said fringe pattern images to obtain pure AMFM patterns; means for determining contingent analytic images corresponding to each of said AMFM patterns; means for determining phase differences from dependent pairs of said contingent analytic images; means for estimating phase shifts between pairs of said contingent analytic images; and means for estimating a spatial phase of said fringe pattern images.
 40. Apparatus as claimed in claim 39 wherein said means for removing offsets comprises means for calculating interframe difference images between pairs of said fringe pattern images.
 41. Apparatus as claimed in claim 39 wherein said contingent analytic images comprise complex images with said AMFM patterns as imaginary parts and imaginary parts of a vortex operator applied to said AMFM patterns in said real parts.
 42. Apparatus as claimed in claim 39 further comprising: means for estimating an amplitude modulation and an offset of said fringe pattern images; means for determining an accuracy measure of said contingent analytic images from said estimated amplitude modulation, offset and spatial phase; means for determining a weighting function wherein areas of low accuracy measure are given a low weighting; and iterative means for providing said weighting function to said means for estimating phase shifts, until said accuracy measure is above a predetermined quantity.
 43. Apparatus as claimed in claim 42 wherein said means for determining an accuracy measure comprises a comparator for comparing one of said analytic images with a reconstructed fringe pattern, wherein said reconstructed fringe pattern is reconstructed using said estimated amplitude modulation, offset and spatial phase.
 44. Apparatus as claimed in claim 34 wherein said fringe pattern images are in the form: ƒ_(n)(x,y)=a(x,y)+b(x,y)cos[χ(x,y)+δ_(n)] wherein a(x,y) is said offset, b(x,y) is said amplitude modulation χ(x,y) is said spatial phase and δ_(n) is a phase shift parameter. 